import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Clase que muestra el objeto para poder incrementar el tiempo.
 * 
 * @author Ulises Yamil Castorena Caldera
 * @version 1.0
 */
public class Reloj extends Tiempo
{
    private GreenfootImage img;//Variable que se va a utilizar para crear un objeto imagen.   
    private boolean band;//Variable que indica si el jugador tomo el tiempo.
    
    /**
     * Constructor para la clase Reloj, crea el objeto para mostrarlo, tambien lo escala porque el tamaño original es mas grande.
     */
    public Reloj()
    {
        img = new GreenfootImage("reloj.png");
        img.scale(50,50);        
        band = false;
        setImage(img);        
    }
    
    /**
     * Método Act el cual coloca la imagen, mueve el objeto y ademas llama los métodos que validan si ha chocado con el jugador o si llego al límite de la pantalla.
     */
    public void act() 
    {
        setImage(img);
        move(-4);
        chocaPersonaje();
        limite();
    }    
    
    /**
     * Verifica si el usuario choca con este objeto.
     */
    public void chocaPersonaje()
    {
        Actor act = getOneIntersectingObject(Personaje.class);
        if(act != null)
        {
           ((Mundo)getWorld()).incrementa();
           band = true;
        }           
    }
    
    /**
     * Checa si este objeto llega al limite de la pantalla.
     */
    public void limite()
    {
        if(getX() == 0 || band)
        {
           ((Mundo)getWorld()).mandaTiempo();
           getWorld().removeObject(this);
        }
    } 
}
